#ifndef _GEO3D_OBJ_VISITOR_H_
#define _GEO3D_OBJ_VISITOR_H_

namespace ccgis{

class CGeo3DPoint;
class CGeo3DLine;
class CGeo3DSurface;
class CGeo3DVolume;
class CGeo3DGroup;
class CGeo3DAnnotation;

class AFX_EXT_CLASS CGeo3DObjVisitor
{
public:
	CGeo3DObjVisitor(){};
	virtual ~CGeo3DObjVisitor(){};

	virtual void VisitorGeo3DPoint(CGeo3DPoint*) = 0;
	virtual void VisitorGeo3DLine(CGeo3DLine*) = 0;
	virtual void VisitorGeo3DSurface(CGeo3DSurface*) = 0;
	virtual void VisitorGeo3DVolume(CGeo3DVolume*) = 0;
	virtual void VisitorGeo3DGroup(CGeo3DGroup*) = 0;
	virtual void VisitorGeo3DAnnotation(CGeo3DAnnotation*) = 0;
};

}//end of namespace ccgis

#endif//_GEO3D_OBJ_VISITOR_H_